<?php

/**
 * BbPenalizacion form.
 *
 * @package    ingenyo-biblio
 * @subpackage form
 * @author     Your name here
 */
class BbPenalizacionForm extends BaseBbPenalizacionForm
{

  public function configure()
  {
    unset($this['idPrestamo'], $this['IdPersona'], $this['usuario']);
    
    $persona = BbPersonaPeer::retrieveByPK(sfContext::getInstance()->getUser()->getAttribute('id_persona'));
    
    $this->setWidget('persona', new mtWidgetFormPlain(array(
      'add_hidden_input' => true,
      'object' => $persona
    )));
    
    $this->setWidget('observacion', new sfWidgetFormTextarea());
    
    $this->getWidget('idTipoPenalizacion')->setLabel('Tipo de sancion');
    
    $this->getWidget('fechaDesde')->setLabel('Fecha desde');
    $this->getWidget('fechaDesde')->setDefault(date('d-m-Y',time()));
    
    $this->getWidget('fechaHasta')->setLabel('Fecha hasta');

    $this->validatorSchema->setOption('allow_extra_fields', true);
    $this->getWidgetSchema()->moveField('persona', sfWidgetFormSchema::FIRST);

  }

  protected function doSave($con = null)
  {
    $persona = BbPersonaPeer::retrieveByPK(sfContext::getInstance()->getUser()->getAttribute('id_persona'));
    
    $penalizacion = $this->getObject();
    $penalizacion->setIdpersona($persona->getId());
    $penalizacion->setUsuario(sfContext::getInstance()->getUser()->getGuardUser()->getId());
    
    parent::doSave($con);

    $persona->setEstado(ReferenceEstadoPersona::SUSPENDIDO, $con);

  }

}
